package com.yjs.app.trade.service.service.business.product;

import java.util.Map;

import com.yjs.app.trade.entity.base.util.Page;
import com.yjs.app.trade.entity.bean.MemberSearch;
import com.yjs.app.trade.entity.bean.ProductNetPrice;
import com.yjs.app.trade.entity.bean.ProductPrice;

/**
 * 产品业务层接口
 * 
 * @author Administrator
 *
 */
public interface ProductService {

	/**
	 * 查询买方产品(药品)挂网价
	 * 
	 * @param page
	 *            分页
	 * @param ProductNetPrice
	 *            搜索条件
	 * @return
	 */
	public Page<?> findBuyerDrugNetPrice(Page<ProductNetPrice> page, ProductNetPrice productNetPrice);

	/**
	 * 查询买方产品(器械)挂网价
	 * 
	 * @param page
	 *            分页
	 * @param ProductNetPrice
	 *            搜索条件
	 * @return
	 */
	public Object findBuyerApparNetPrice(Page<ProductNetPrice> page, ProductNetPrice productNetPrice);
	
	/**
	 * 查询买方产品信息
	 * 
	 * @param page
	 *            分页
	 * @param ProductNetPrice
	 *            搜索条件
	 * @return
	 */
	public Object findSellerProductList(Page<ProductNetPrice> page, ProductNetPrice productNetPrice);

	/**
	 * 查询卖方产品(药品)挂网价
	 * 
	 * @param page
	 *            分页
	 * @param ProductNetPrice
	 *            搜索条件
	 * @return
	 */
	public Object findSellerDrugNetPrice(Page<ProductNetPrice> page, ProductNetPrice productNetPrice);

	/**
	 * 查询卖方产品(器械)挂网价
	 * 
	 * @param page
	 *            分页
	 * @param ProductNetPrice
	 *            搜索条件
	 * @return
	 */
	public Object findSellerApparNetPrice(Page<ProductNetPrice> page, ProductNetPrice productNetPrice);

	/**
	 * 查询配送方产品(药品)挂网价
	 * 
	 * @param page
	 *            分页
	 * @param ProductNetPrice
	 *            搜索条件
	 * @return
	 */
	public Page<ProductNetPrice> findDispatcherDrugNetPrice(Page<ProductNetPrice> page, ProductNetPrice productNetPrice);

	/**
	 * 查询配送方产品(器械)挂网价
	 * 
	 * @param page
	 *            分页
	 * @param ProductNetPrice
	 *            搜索条件
	 * @return
	 */
	public Object findDispatcherApparNetPrice(Page<ProductNetPrice> page, ProductNetPrice productNetPrice);
	
	/**
	 * 配送方查询产品挂网价变化情况
	 * @param productNetPrice
	 * @return
	 */
	public Page<ProductNetPrice> findDispathProductPriceAdjust(Page<ProductNetPrice> page, ProductNetPrice productNetPrice);
	/**
	 * 根据条件查询产品
	 * @param productNetPrice
	 * @return
	 */
	public Page<ProductNetPrice> findProductByParam(Page<ProductNetPrice> page, ProductNetPrice productNetPrice);
	
	/**
	 * 联合体查询产品备案审核信息
	 * @param memberSearch
	 * @return
	 */
	public Page<?> unionProductAudit(Page<MemberSearch>page, MemberSearch memberSearch);
	/**
	 * 配送方查询挂牌价
	 * @param page
	 * @param productPrice
	 * @return
	 */
	public Page<?> findProductPrice(Page<ProductPrice> page, ProductPrice productPrice);
	/**
	 * 查询议价详情
	 * @param bargainDetailId
	 * @return
	 */
	public Map<String, Object> findBargain(String bargainDetailId);
	/**
	 * 查询GMP
	 * @author fgdgf7d4gfd
	 * @param productGmpId
	 * @return
	 */
	public Map<String, Object> findGMP(String productGmpId);
	/**
	 * 查询进口代理协议
	 * @param productDrugId
	 * @return
	 */
	public Map<String, Object> findAgencyContract(String productAgentProtocolId);
	/**
	 * 查询进口代理协议消息
	 * @param productDrugId
	 * @return
	 */
	public Map<String, Object> findProductAudit(String productDrugId);

}
